﻿#ifndef CPanItemConfig_H
#define CPanItemConfig_H
/********************************************************************************
** @ Date:2024/03/22
** @ Author: HanJiaXin
** @ Description:机器人云台巡检项配置界面
** @ Version:1.0.0
** @ ClassName:
** @ Fun:
********************************************************************************/
#include <QWidget>
#include "ui_CPanItemConfig.h"
#include "CDevBase.h"
#include "CRBaseData.h"

class CPanItemConfig : public QWidget
{
	Q_OBJECT

public:
	CPanItemConfig(QString sSceneGuid,QString sPointGuid, CDevBase* pDev,CPolArea* pPolArea, CRBaseData* pBasicData, QWidget *parent = nullptr);
	~CPanItemConfig();

	void setData(QString sGuid,QString sItemName,int nAlarmLevel,int nDevTypeCode,int nTackPicture, int nCheckType,
					int nDataType,int nCollectIndex,double dDataThreadHoldHH,double dDataThreadHoldLL,
					double dDataThreadHoldH,double dDataThreadHoldL,double dItemZ, double dCollectTime,
		int nPersetNo, double dCollectInterval,int nBelong,int nCollectCheckType,int nCollectRollerNum,double dRollerOffsetDis,int nIsExecAI, int nIsShowPdf);//设置界面中的数据
	void setTitle();//设置标题
private:
	void initData();//初始化数据
	void initConnect();//初始化槽函数连接
	bool judgeYtSysPoint(int nPresetPointNumber);//判断是否是云台系统的固定不可用点 wxy++20240527

public slots:
	void slotPushButtonSaveClicked();//点击保存按钮槽函数
	void slotGetRobZ();//获取Z轴位置
	void slotSetPanPreset();//设置相机预置点
	void slotDevTypeCodeChanged(int nIndex);//当设备类型发生变化时
	void slotCheckTypeChanged(int nIndex);//当巡检项工作类型发生变化时
	void slotCollectCheckTypeChanged(int nIndex);//当持续检测报警间隔判断类型发生变化时
	void slotIsExecAIChanged(int nIndex);//当持续检测报警间隔判断类型发生变化时
	void slotPrestAreaSet();   //设置预置点区域
	void slotGoToPrestNo();	   //运动到预置点
	void slotAlarmSet();       //配置报警关联点
signals:
	void sigRefushUI();//通知上层刷新UI的信号

public:
	int m_nType;//0:增加 1:修改

private:
	Ui::CPanItemConfigClass ui;
	CDevBase* m_pDev;
	CPolArea* m_pPolAreaOld;//区域备份
	CRBaseData* m_pBasicData;
	QString m_sPointGuid;//巡检点GUID
	QString m_sGuid;//场景GUID
	QMap<int, QString> m_mapDevTypeCode;//设备类型枚举
	QMap<int, QString> m_mapCheckType;//巡检项工作类型
	QMap<int, QString> m_mapDataType;//巡检项数据类型
	QMap<int, QString> m_mapCollectIndex;//持续任务动作点
	QMap<int, QString> m_mapAlarmType;//报警等级
	QMap<int, QString> m_mapBelong;//归属点位
	QMap<int, QString> m_mapCollectCheckType;//持续检测报警间隔判断类型
	int m_nMax;//相机预设点最大值
};

#endif // !CPanItemConfig_H